/*
 * Copyright (c) 2014-2025 Stream.io Inc. All rights reserved.
 *
 * Licensed under the Stream License;
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    https://github.com/GetStream/stream-chat-android/blob/main/LICENSE
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package io.getstream.chat.android.compose.sample.data

import android.content.Context
import android.content.SharedPreferences

/**
 * A class that encapsulates custom settings for the app.
 */
class CustomSettings(private val context: Context) {

    private val prefs: SharedPreferences by lazy {
        context.getSharedPreferences("custom_settings", Context.MODE_PRIVATE)
    }

    var isAdaptiveLayoutEnabled: Boolean
        get() = prefs.getBoolean(SETTINGS_KEY_ADAPTIVE_LAYOUT, false)
        set(value) = prefs.edit().putBoolean(SETTINGS_KEY_ADAPTIVE_LAYOUT, value).apply()

    companion object {
        private const val SETTINGS_KEY_ADAPTIVE_LAYOUT = "adaptive_layout"
    }
}

fun Context.customSettings(): CustomSettings = CustomSettings(this)
